package Object;

public class objectDemo {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "hello";
        //String类重写了equals类来比较字符串内容是否相同
        System.out.println(s1.equals(s2));

        StringBuilder builder1 = new StringBuilder("hello");
        StringBuilder builder = new StringBuilder("hello");
        //StringBuilder类没有重写equals（），因此调用的还是Object类的equals（）比较地址
        System.out.println(builder.equals(builder1));
        System.out.println(s1.equals(builder));
        Integer x = new Integer(34);










        /**
         * 调用Object类的equals（），内部还是使用==比较地址，没有参考意义
         * 若想比较对象的属性值是否相同，我们认为Object类的equals（）并不能满足需求
         * 因此常常需要重写equals（）*/
//        Point p1=  new Point(100,200);
//        Point p2 = new Point(100,200);
//
//        System.out.println(p1 == p2);
//        System.out.println(p1.equals(p2));

















        /**
         * 输出引用变量时默认调用Object类的头String（）方法
         * 该方法返回的字符串格式：类的全称@hashcode值
         * 但通常这个返回值结果对我们来说没有意义
         * 我们真正想输出的是对象的属性
         * 我们认为Object类的toString（）并不能满足需求
         * 因此我们常常重写toString方法来换取属性值*/
//        Point p = new Point(100,200);
//        System.out.println(p);
    }
}
